POO 12/02/2026

DST1 POO MARDI 10/03/2026 1h20-1H30

Chapitre 11: Règle des 3 :

Quel que fois le comportement par défaut du destructeur .la constructeur par copie,et l’opérateur=(affectation)construits par défaut ,sont non souhaitable, il faut les ré-écrire.

Souvent on doit en ré-écrire ,un V il faut ré-écrire les deux aurtre.

Exemple :

class Tab10{
    int *t=nullptr;
    public :
        Tab10(){
            t=(int*)(malloc(10*sizeof(int)));
            if(t==nullptr)exit(1)
        
        } 
        int & at(int i){
            if(i<0 || i>9 )exit(1);
            return this->t[i];
        
        }
        ~Tab10(){free(this->t);}

}

void g(Tab10 c){
    c.at(0)=1;
    

}
    void f(){
    Tab10 do ;do.at(10)=1;
    Tab10 obj{do};//Tab10 do1=do;
    g(ob);
    ob=ob1;//do.operator=(obj);
    }
}

Tab10(const T10 &s){
    this->t=malloc(int *sizeofint);
    if(this->t==nullptr)exit(1);
    int i;
    for(int i=0;i<10;i++;this->t[i]=s.t[i]),
}

Tab& operator=(const tab10& s){
if(this==&fs) return *this;
int i;
for(i=0;i<10;i++)this->t[i]=s.t[i];
return *this;

}

Chapitre 12 :Ecriture implicite ,conversion,valeur par défaut :

conversion c++

type C exemple:(int expr)(void(*p)(int,int))expr

Conversion de type à la compilateur en C++:

    Exemple :
        static_cast<T>(expr)<T>:la valeur 
        expr est convertie dans le type T.
        
    Exemple :
        Struct A{
            explicit A(B c){......}
        }
    B obj;
    A obj =static_cast<A>(&B);
    
    Ecriture implicite :
        A la construction d'une classe plusieur méthode sont disponibles implicitent car construite automatique par le compilateur 
        
 
    Exemple:- 
        Sont construit par défaut 
        * constructions sans paramètre 
        * copie 
        * opérateur 
        * destructeur 
        * et d'autre 

un moyen de les interdire est de les écrire explicitement .

Arguement par défaut

    Lors de la déclaration d'une méthode ou d'une fonction on peut spécifier au param des valeurs par défaut si ces valeur peuvent être calculée durant la compilateur.

Exemple :

    void f(int a,int b=3,double d=5,3);
//  void g(int c=6,int b,double d=6.2);
    int main(){
        f(5,4,2)//ok
        f(5,6)//ok f(5,3,5.3);
        f(5),//f(5,3,5.3);
        //f();erreur 
        
        
        
    
    }